A general approach to managing a project determines various parameters such as cost, time to completion, resources required to complete the project and like, by first breaking down the project into a number of tasks. Each task may be broken down into subtasks, which herein are referred to also as tasks. Tasks are broken down into smaller tasks until each task is simple enough that a person with appropriate skills can both perform the task and estimate the parameters of the task. The parameters of the project are estimated by combining the parameters of the tasks that make up the entire project. For example, the cost of the project is the sum of the estimate of cost of the tasks. The schedule for performing an overall task can comprise scheduling of the individual tasks in series or parallel.
In traditional approaches, it is assumed that an expert can accurately estimate the cost and feasibility associated with a project to sufficient degree. While this may be true in some cases, such as in projects involving technology that does not change rapidly, projects requiring few or no new ideas, and projects in which the actors have sufficient control over the development of the project, it is certainly not true in many other cases. For example, development projects that seek to be innovative tend to have higher risks. It is hard to estimate the cost and feasibility of developing such projects to sufficient accuracy. This has led many such projects to fail. That is, the project fails to meet expectations of its stakeholders, for instance, in that projects fail to meet the requirements, the cost significantly exceeds the cost that is acceptable, or that it fails to meet the schedule or quality requirement, etc. This potential for failure represents the risk that a development team needs to address.